const express = require("express");
const mysql = require("mysql2");
const crypto = require("crypto");
const cors = require('cors');

// 创建 Express 应用
const app = express(); // 这里需要将 app 定义放在顶部

// 使用 cors 中间件
app.use(cors());

// 如果需要更加精确的控制，可以添加特定的 CORS 配置：
app.use(cors({
    origin: 'http://localhost:5173', // 允许前端的域名
    methods: ['GET', 'POST'],        // 允许的 HTTP 方法
    allowedHeaders: ['Content-Type'] // 允许的请求头
}));

app.use(express.json()); // 用于解析 JSON 数据

// 数据库配置
const db = mysql.createConnection({
  host: "127.0.0.1",
  user: "root",
  password: "123456",
  database: "simsdbb", // 替换为你的数据库名称
});

// 测试数据库连接
db.connect((err) => {
  if (err) {
    console.error("数据库连接失败:", err);
  } else {
    console.log("已成功连接到 MySQL 数据库");
  }
});

// 登录接口
app.post("/api/login", (req, res) => {
  const { username, password } = req.body;

  if (!username || !password) {
    return res.status(400).json({ message: "用户名和密码不能为空" });
  }

  // 使用 MD5 加密密码
  const encryptedPassword = crypto.createHash("md5").update(password).digest("hex");

  // 查询数据库
  const query = "SELECT * FROM users WHERE username = ? AND password = ?";
  db.query(query, [username, password], (err, results) => {
    if (err) {
      console.error("查询失败:", err);
      return res.status(500).json({ message: "服务器错误" });
    }

    if (results.length > 0) {
      res.status(200).json({ message: "登录成功", user: results[0] });
    } else {
      res.status(401).json({ message: "用户名或密码错误" });
    }
  });
});

// 测试接口
app.post('/api/test-login', (req, res) => {
  const { username, password } = req.body;

  if (username === 'test' && password === '123') {
    return res.status(200).json({ message: 'Login successful' });
  } else {
    return res.status(401).json({ message: 'Invalid username or password' });
  }
});

// 启动服务器
const PORT = 3000;
app.listen(PORT, () => {
  console.log(`服务器正在运行：http://localhost:${PORT}`);
});
